package in.controller.handler; import android.app.Fragment; import com.google.gson.JsonObject; import in.controller.handler.base.ResponseHandler; import in.controller.handler.base.ResponseListener; import in.lib.utils.Debug; import in.model.User; import lombok.Getter; import lombok.Setter; public class UserResponseHandler extends ResponseHandler { @Getter @Setter private User user; @Override public void onSuccess() { if (getContent() != null) { JsonObject userObject = getContent().getAsJsonObject().get("data").getAsJsonObject(); this.user = new User().createFrom(userObject); } } @Override public void onFinish(boolean failed) { if (failed || !(getFragment() instanceof ResponseListener)) { Debug.out("Response failed"); Debug.out(getConnectionInfo()); Debug.out(getContent()); detachResponse(); } else { if (getFragment() != null) { ((ResponseListener)getFragment()).handleResponse(getUser()); detachResponse(); } else { Debug.out("Waiting for fragment to reattach"); setOnFragmentAttachedListener(new OnFragmentAttachedListener() { @Override public void onFragmentAttached(Fragment fragment) { ((ResponseListener)getFragment()).handleResponse(getUser()); setOnFragmentAttachedListener(null); detachResponse(); } }); } } } }